﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.ModelConfiguration;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Box.Entities;

namespace Box.Repository.Mapping
{
    public class ComprasMap:EntityTypeConfiguration<Compra>
    {
        public ComprasMap()
        {
            this.HasKey(p => p.Id);
            this.Property(p => p.Id)
                .HasDatabaseGeneratedOption(
                DatabaseGeneratedOption.Identity);

            this.Property(p => p.FechaCompra)
                .IsRequired();

            this.Property(p => p.Total)
                .HasPrecision(9, 2);

            this.Property(p => p.TipoPago)
                .HasColumnType("varchar")
                .HasMaxLength(10)
                .IsRequired();


            this.ToTable("COMPRA");

            this.Property(p => p.Id).HasColumnName("Id");
            this.Property(p => p.FechaCompra).HasColumnName("FechaCompra");
            this.Property(p => p.Total).HasColumnName("TotalCompra");
            this.Property(p => p.NumDocumento).HasColumnName("NumDocumentoCompra");
            this.Property(p => p.ImagenDocumento).HasColumnName("ImagenDocumentoCompra");
            this.Property(p => p.TipoPago).HasColumnName("TipoPagoCompra");


            
            this.HasRequired(p=>p.Proveedor)
                .WithMany(p=>p.IcCompras)
                .HasForeignKey(p=>p.IdProveedor)
                .WillCascadeOnDelete(false);

            this.HasRequired(p => p.TipoDocumento)
            .WithMany(p=>p.IcCompras)
            .HasForeignKey(p => p.IdTipoDocumento)
            .WillCascadeOnDelete(false);

        }
    }
}
